/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package negocios;

import acceso_datos.TipoEmergenciaDB;
import datos.TipoEmergencia;
import exceptions.AlfanumericoException;
import exceptions.Alfanumero;
import exceptions.EmergenciaInicialException;
import java.sql.SQLException;
import java.util.HashMap;
import javax.swing.table.DefaultTableModel;

/**
 *
 * @author Pablo
 */
public class GestorTipoEmergencia {
    
    private TipoEmergencia tipoEmergencia;
    private HashMap<Integer, TipoEmergencia> listaTipoEmergencia = new HashMap<Integer, TipoEmergencia>();
    private Alfanumero alfaNumero;
    
    public GestorTipoEmergencia() throws SQLException {
        alfaNumero = new Alfanumero();
        cargarDatos();
    }

    public TipoEmergencia getEmergenciaInicial() {
        return tipoEmergencia;
    }

    public void setEmergenciaInicial(TipoEmergencia emergenciaInicial) {
        this.tipoEmergencia = emergenciaInicial;
    }
    
    
    public void cargarDatos() throws SQLException {
        
        TipoEmergenciaDB edb=new TipoEmergenciaDB();
        listaTipoEmergencia=edb.listar();
        //listaEmergenciaInicial.put(emergenciaInicial.getRegistroLlamada().getId(), emergenciaInicial);
    }

    public void insertar(TipoEmergencia tipoE) throws EmergenciaInicialException, AlfanumericoException, SQLException {
        alfaNumero.vacio(tipoE.getDescripcion());       
//        if (listaRegistroLlamadas.containsKey(emergenciaInicial.getRegistroLlamada().getClave())) {
//            throw new EmergenciaInicialException("Emergencia Inicial ya existe");
//        }
        this.tipoEmergencia = tipoE;
        TipoEmergenciaDB edb=new TipoEmergenciaDB();
        tipoE.setId(edb.getMaxId()+1);
        
        edb.grabar(tipoE);
        
        listaTipoEmergencia.put(tipoE.getId(), tipoE);
    }

    
    public TipoEmergencia buscar(int clave) throws EmergenciaInicialException {
        if (!listaTipoEmergencia.containsKey(clave)) {
            throw new EmergenciaInicialException("Tipo Emergencia no Existente");
        }
        return listaTipoEmergencia.get(clave);
    }

    public void eliminar(int clave) throws EmergenciaInicialException {
        buscar(clave);
        listaTipoEmergencia.remove(clave);
    }

    public DefaultTableModel tablaModelo() {
        Object nameColumns[] = {"Clave","Descripcion"};
        DefaultTableModel miTableModel = new DefaultTableModel(nameColumns, 0);
        for (TipoEmergencia value : listaTipoEmergencia.values()) {
            Object nuevaFila[] = {value.getId(),value.getDescripcion()};
            miTableModel.addRow(nuevaFila);
        }

        return miTableModel;
    }
    
}
